#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable:6031)
//#include<stdio.h>
//#include<math.h>
//typedef struct Point
//{
//	float x;
//	float y;
//}Point;
//float TrueDistance(Point p1, Point p2)
//{
//	float a = (float)sqrt(pow((p2.x - p1.x), 2) + pow((p2.y - p1.y), 2));
//	return a;
//}
//int main()
//{
//	Point point1 = { 0 };
//	Point point2 = { 0 };
//	scanf("%f,%f", &point1.x, &point1.y);
//	scanf("%f,%f", &point2.x, &point2.y);
//	float td = TrueDistance(point1, point2);
//	printf("MHTDistance=%.2f\n", fabs(point1.x - point2.x) + fabs(point1.y - point2.y));
//	printf("TrueDistanc=%.2f\n", td);
//
//	return 0;
//}

#include<stdio.h>
#include<stdlib.h>
typedef struct Student
{
	char name[10];
	int score;
}Stu;
int com(const void* p1, const void* p2)
{
	return ((Stu*)p2)->score - ((Stu*)p1)->score;
}
int main()
{
	Stu stu[4];
	int i = 0;
	for (i = 0; i < 4; i++)
	{
		scanf("%s %d", &stu[i].name, &stu[i].score);
	}
	qsort(stu, 4, sizeof(stu[0]), com);
	for (i = 0; i < 4; i++)
	{
		printf("%s %d\n", stu[i].name, stu[i].score);
	}

	return 0;
}
//
//#include<stdio.h>
//typedef struct Stu
//{
//	char name[10];
//	int score;
//}Stu;
//float StructAvg(Stu stu[], int n, int* m)
//{
//	int i = 0;
//	float avg = 0.0f;
//	for (i = 0; i < 4; i++)
//	{
//		avg = avg + stu[i].score;
//	}
//	return (float)avg / (float)4.0;
//}
//int main()
//{
//	int m = 0;
//	int n = 0;
//	Stu stu[4] = { 0 };
//	int i = 0;
//	for (i = 0; i < 4; i++)
//	{
//		scanf("%s %d", &stu[i].name, &stu[i].score);
//	}
//	float avg = StructAvg(stu, n, &m);
//	printf("Avg=%.1f\n", avg);
//	for (i = 0; i < 4; i++)
//	{
//		if (stu[i].score >= avg)
//		{
//			printf("%s %d\n", stu[i].name, stu[i].score);
//		}
//	}
//	return 0;
//}